﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace LI4
{
    public partial class NovoCursoF : Form
    {
        public NovoCursoF()
        {
            InitializeComponent();
        }

        private void NovoCursoF_Load(object sender, EventArgs e)
        {
            foreach (Business.Distrito dist in Program.distritos)
                distritoCB.Items.Add(dist);

            distritoCB.SelectedIndex = 0;

            foreach (Business.Area area in Program.areas)
                areaCB.Items.Add(area);
            areaCB.SelectedIndex = 0;
        }

        private void distritoCB_SelectedIndexChanged(object sender, EventArgs e)
        {
            string distrito = distritoCB.Text.Trim();

            localidadeCB.Text = "";
            localidadeCB.Items.Clear();

            foreach (Business.Localidade local in Program.localidades)
            {
                if (local.Distrito.Nome.Equals(distrito)) localidadeCB.Items.Add(local);
            }

            if (localidadeCB.Items.Count > 0) localidadeCB.SelectedIndex = 0;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string area = areaCB.Text.Trim();
            string nome = nomeTB.Text.Trim(); ;
            int vagas = 0;
            int remuneracao = 0;
            string distrito = distritoCB.Text.Trim(); ;
            string localidade = localidadeCB.Text.Trim(); ;
            string morada = moradaTB.Text.Trim(); ;
            string cod_postal = cp1TB.Text.Trim(); ;
            cod_postal = String.Concat(cod_postal, cp2TB.Text.Trim());
            string descricao = descricaoTB.Text.Trim(); ;
            string latitude = "0";
            string longitude = "0";
            
            try { vagas = Int32.Parse(vagasTB.Text.Trim()); }
            catch { vagas = 0; }
            try { remuneracao = Int32.Parse(remuneracaoTB.Text.Trim()); }
            catch { remuneracao = 0; }

            try
            {
                mshtml.IHTMLDocument2 doc = axWebBrowser1.Document as mshtml.IHTMLDocument2;
                mshtml.HTMLInputElement result = (mshtml.HTMLInputElement)doc.all.item("click_lat", 0);
                mshtml.HTMLInputElement result1 = (mshtml.HTMLInputElement)doc.all.item("click_long", 0);
                latitude = result.value.ToString();
                longitude = result1.value.ToString();
            }
            catch
            {
                MessageBox.Show(this, "Ocorreu um erro a ler as coordenadas do mapa!\nPor favor tente novamente!", "Erro.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

            if (morada.Length < 1) MessageBox.Show(this, "Campo Morada inválido!", "Erro.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            else if (nome.Length < 1) MessageBox.Show(this, "Campo Nome inválido!", "Erro.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            else if (localidade.Length < 1) MessageBox.Show(this, "Campo Localidade inválido!", "Erro.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            else if (cod_postal.Length < 6) MessageBox.Show(this, "Campo Código Postal inválido!", "Erro.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            else if (descricao.Length < 1) MessageBox.Show(this, "Campo Descriçao inválido!", "Erro.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            else if (vagas == 0) MessageBox.Show(this, "Campo Vagas inválido!", "Erro.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            else if (remuneracao == 0) MessageBox.Show(this, "Campo Remuneraçao inválido!", "Erro.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

            else
            {
                Business.Area areaa = (Business.Area)areaCB.SelectedItem;
                Business.Localidade local = (Business.Localidade)localidadeCB.SelectedItem;
                local.Distrito = (Business.Distrito)distritoCB.SelectedItem;

                Business.Curso curso = new LI4.Business.Curso(nome, 0, areaa, cod_postal, morada, descricao, vagas, 0, remuneracao, local, latitude, longitude);
                int success = Business.GerirCursos.inserir(curso);
                if (success != Data.Ligacao.OK)
                {
                    MessageBox.Show(this, "Ocorreu um erro!", "Erro.", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    
                }
                else
                {
                    Program.cursos.Add(curso);
                    MessageBox.Show(this, "Curso de Formaçao criado com sucesso!", "Sucesso!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    this.Dispose();
                }

            }
        }

        private void distritoCB_SelectedIndexChanged_1(object sender, EventArgs e)
        {
            string distrito = distritoCB.Text.Trim();

            localidadeCB.Text = "";
            localidadeCB.Items.Clear();

            foreach (Business.Localidade local in Program.localidades)
            {
                if (local.Distrito.Nome.Equals(distrito)) localidadeCB.Items.Add(local);
            }

            if (localidadeCB.Items.Count > 0) localidadeCB.SelectedIndex = 0;
        }

      

        /*private void webBrowserGetFocus(object sender, EventArgs e)
        {
            object empty = System.Reflection.Missing.Value;
            axWebBrowser1.Navigate(@"C:/Documents and Settings/fernando/My Documents/Visual Studio 2008/Projects/Li4SVN/Google Maps/novo.html");

            mshtml.IHTMLDocument2 doc = axWebBrowser1.Document as mshtml.IHTMLDocument2;

        }*/

        private void axWebBrowser1_DownloadComplete(object sender, EventArgs e)
        {
            mshtml.IHTMLDocument2 doc = axWebBrowser1.Document as mshtml.IHTMLDocument2;
            mshtml.HTMLInputElement result = (mshtml.HTMLInputElement)doc.all.item("address", 0);

            result.value = moradaTB.Text.Trim() + ", " + localidadeCB.Text;
        }

        private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
        {
            object empty = System.Reflection.Missing.Value;
            axWebBrowser1.Navigate(@"C:/Documents and Settings/fernando/My Documents/Visual Studio 2008/Projects/Li4SVN/Google Maps/novo.html");

            mshtml.IHTMLDocument2 doc = axWebBrowser1.Document as mshtml.IHTMLDocument2;
        }

       
    }
}
